c语言里break和{}的问题~请大家帮我说下。

来源:百度知道 编辑:UC知道 时间:2024/06/05 18:50:56
原程序如下:
main()
{
int i=1,n=32;
while(i++<n)
{if(n%i==0)printf("%d bu shi shushu\n",n);break;}
if(n==i)printf("%d shi shushu\n",n);
}
在while(i++<n)
{if(n%i==0)printf("%d bu shi shushu\n",n);break;}如果我去掉{}变成if(n%i==0)printf("%d bu shi shushu\n",n);break;为什么不行的~请说明下原因~谢谢~`
哪有多加了;?汗~没吧~!`我是想知道没加{}的话他会怎么计算呢~可以说下吗?我不是加了break吗?程序为什么不是运行到这里就自动退出循环了吗?

while() {...}括号内的是要循环的部分,

把括号去掉循环的部分就不再是
if(n%i==0)printf("%d bu shi\ shushu\n",n);break;

而是
if(n%i==0)printf("%d bu shi shushu\n",n);

break 在你这里的作用是无条件跳出你的循环

至于作用在不同的地方是不一样的,另外{}是while循环的定界符,而你这里是两条语句 “if()后面你多加了个分号应该去掉”,去掉那个多余的分号就可以了

至于其他的,在这里很难根你说清楚。建议你仔细看看书吧